/*
============================================================================
 Name        : C$(Basename)AppUi from $(Basename)Appui.h
 Author      : $(Author)
 Version     :
 Copyright   : $(Copyright)
 Description : Declares UI class for application.
============================================================================
*/

#ifndef $(BASENAME)APPUI_H
#define $(BASENAME)APPUI_H

// INCLUDES
#include <aknviewappui.h>
#include <akntabgrp.h>
#include <aknnavide.h>

$if(series60!=1.x)
#include <akntabobserver.h>
$endif()

// FORWARD DECLARATIONS
class C$(Basename)Container;


// CLASS DECLARATION

/**
* Application UI class.
* Provides support for the following features:
* - EIKON control architecture
* - view architecture
* - status pane
* 
*/
$if(series60!=1.x)
class C$(Basename)AppUi : public CAknViewAppUi, MAknTabObserver
$endif()
$if(series60==1.x)
class C$(Basename)AppUi : public CAknViewAppUi
$endif()
	{
	public: // // Constructors and destructor

		/**
		* EPOC default constructor.
		*/
		void ConstructL();

		/**
		* Destructor.
		*/	  
		~C$(Basename)AppUi();
		
	public: // New functions

	public: // Functions from base classes
$if(series60!=1.x)
		/**
		* From MAknTabObserver.
		* @param aIndex tab index
		*/
		void TabChangedL(TInt aIndex);
$endif()

	private:
		// From MEikMenuObserver
		void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);

	private:
		/**
		* From CEikAppUi, takes care of command handling.
		* @param aCommand command to be handled
		*/
		void HandleCommandL(TInt aCommand);

		/**
		* From CEikAppUi, handles key events.
		* @param aKeyEvent Event to handled.
		* @param aType Type of the key event. 
		* @return Response code (EKeyWasConsumed, EKeyWasNotConsumed). 
		*/
		virtual TKeyResponse HandleKeyEventL(
			const TKeyEvent& aKeyEvent,TEventCode aType);

	private: //Data
		CAknNavigationControlContainer* iNaviPane;
		CAknTabGroup* iTabGroup;
		CAknNavigationDecorator* iDecoratedTabGroup;
	};

#endif


